#！/usr/bin/env python
#-*- coding utf8 -*-

import sys

sys.path.append('.')
sys.path.append('..')

from flask import Flask, render_template
from flask_bootstrap import Bootstrap
# from flask_mail import Mail
# from flask_moment import Moment
from flask_sqlalchemy import SQLAlchemy
from config import config
from flask_uploads import UploadSet,configure_uploads,patch_request_class,TEXT,IMAGES,SCRIPTS

uploadfiles = UploadSet('files', TEXT+IMAGES+SCRIPTS)

bootstrap = Bootstrap()
# mail = Mail()
# moment = Moment()
db = SQLAlchemy()

from flask_login import LoginManager

login_manager = LoginManager()
login_manager.session_protection = 'strong'
login_manager.login_view = 'auth.login'

def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    bootstrap.init_app(app)
    # mail.init_app(app)
    # moment.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    #注册可以床传文件类型
    configure_uploads(app, uploadfiles)
    patch_request_class(app)

    from .main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    from .auth import auth as auth_blueprint
    app.register_blueprint(auth_blueprint, url_prefix='/auth')

    from .admin import admin as admin_blueprint
    app.register_blueprint(admin_blueprint, url_prefix='/admin')

    return app


class elineStat:
    disable = 0 #不可用
    enable = 1 #可用
    examine = 2  # 待审核添加
    all = 0xff #全部


class eTeachOption:
    add = 1  # 添加
    delete = 2  #删除


class eAdminOption:
    refuce = 0  # 拒绝
    accpt = 1  # 同意
